package com.tedu.api.thread;
/**
 * 单元测试： testLambdaHomeWork1---周二零点前
 * 1.线程两种创建方式：使用Lambda表达式完成
 * 2.listAPI里的195行的testSort  写成单元测试名：testComputer：使用Lambda表达式完成
 * 3.找IO流--File类---FilterAPI：使用LambdaAPI：转换成匿名内部类转成Lambda
 * 使用Lambda表达式完成【五行代码搞定】
 * 4.找IO流--File类---FilterAPI：使用LambdaAPI：转换成匿名内部类转成Lambda
 * 使用Lambda表达式完成【2行代码搞定】
 */


import org.junit.Test;
import org.junit.runner.Computer;

import java.io.File;
import java.io.FileFilter;
import java.sql.ClientInfoStatus;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.Consumer;

public class LambdaHomeWork {
    @Test
    public void LambdaHomeWork1() {
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                System.out.println("给我学的呀，one楞one楞的~");
            }
        });
        t1.start();
        Runnable r = () -> {
            for (int i = 0; i < 1000; i++) {
                System.out.println("Runnable，one楞one楞的~");
            }
        };
        Thread t2 = new Thread(r);
        t2.start();
    }

    @Test
    public void testComputer() {
        List<String> list = new ArrayList<>();
        list.add("你好");
        list.add("你好呀");
        list.add("哈哈哈哈");
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        list.forEach(s -> System.out.println(s));
    }

    @Test
    public void LambdaAPI() {
        //File file = new File("." + File.separator + "API");
        //Lambda表达式
       /* FileFilter filter1 = (File pathname) -> {
            return pathname.getName().startsWith("s");
        };*/
        // File[] sub = new File("." + File.separator + "API").listFiles(pathname ->
        //{
        //   return pathname.getName().startsWith("s");
        //});
        //for (int i = 0; i < sub.length; i++) {
        //System.out.println(sub[i].getName());
        //}
        for (File f : new File("." + File.separator + "API").listFiles(pathname -> {
            return pathname.getName().startsWith("s");
        }))
            System.out.println(f);


        //匿名内部类形式
       /* FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                String name=pathname.getName();
                System.out.println("获取名称是："+name);
                return name.startsWith("s");
            }
        };
        File[] subs = file.listFiles(filter);
        for (int i = 0; i < subs.length; i++) {
            System.out.println(subs[i].getName());
        }*/
    }
}




